/*
* Copyright (c) Microsoft Corporation.  All Rights Reserved.
*
* Mock10 asserts
*/
#include "Mock10.h"
#include "WexDebug.h"

#pragma push_macro("Assert")
#undef Assert

#if !defined(WEX_ASSERT)
#if defined(NDEBUG)
#define WEX_ASSERT(___condition, ___message)
#else
#define WEX_ASSERT(___condition, ___message) Mock10::Private::Assert(!!(___condition), (L#___condition), (___message), __WFILE__, __WFUNCTION__, __LINE__)
#endif /* NDEBUG */
#endif /* WEX_ASSERT */

namespace Mock10 { namespace Private
{
    void MOCK10_API __stdcall Assert(bool condition, const wchar_t* pszCondition, const wchar_t* pszMessage, const wchar_t* pszFile, const wchar_t* pszFunction, int line);

    // wchar_t native type exports
    #if defined(MOCK10_FULL_BUILD)
    void MOCK10_API __stdcall Assert(bool condition, const __wchar_t* pszCondition, const __wchar_t* pszMessage, const __wchar_t* pszFile, const __wchar_t* pszFunction, int line);
    #endif
}}

#pragma pop_macro("Assert")